package top.v5it.logback.push.client;

import java.lang.annotation.*;

/**
 * 日志消息推送，在业务方法上添加本注解
 *
 * @author zhanpu
 * @date 2022/9/28
 * @see ErrorOutputParser
 */
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(ErrorOutputs.class)
public @interface ErrorOutput {

    /**
     * 日志消息编号，根据编号进行推送收敛
     *
     * @return
     */
    String id();

    /**
     * 日志消息标题，最终推送到终端并展示出的消息标题
     *
     * @return
     */
    String title() default "系统存在异常，请关注";

    /**
     * 指定异常
     *
     * @return
     */
    Class<? extends Throwable>[] errorFor() default {};

    /**
     * 指定异常名称
     *
     * @return
     */
    String[] errorForClassName() default {};
}
